From 621d1bb4ec64c0412cda8bd6f335c0e3033c00ef Mon Sep 17 00:00:00 2001 From: Olof-Joachim Frahm Date: Sun, 5 Feb 2017 19:08:56 +0100 Subject: [PATCH] Make sure to remove tooltip timeout. Otherwise in GC-ed environments the `g_source_remove` call during disposal might be called on an already removed source, which results in unnecessary console output. https://bugzilla.gnome.org/show_bug.cgi?id=778301 --- gtk/gtktooltip.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gtk/gtktooltip.c b/gtk/gtktooltip.c index ea4bf310b2..67fc943845 100644 --- a/gtk/gtktooltip.c +++ b/gtk/gtktooltip.c @@ -732,6 +732,12 @@ tooltip_browse_mode_expired (gpointer data) tooltip->browse_mode_enabled = FALSE; tooltip->browse_mode_timeout_id = 0; + if (tooltip->timeout_id) + { + g_source_remove (tooltip->timeout_id); + tooltip->timeout_id = 0; + } + /* destroy tooltip */ display = gtk_widget_get_display (tooltip->window); g_object_set_qdata (G_OBJECT (display), quark_current_tooltip, NULL); @@ -744,6 +750,12 @@ gtk_tooltip_display_closed (GdkDisplay *display, gboolean was_error, GtkTooltip *tooltip) { + if (tooltip->timeout_id) + { + g_source_remove (tooltip->timeout_id); + tooltip->timeout_id = 0; + } + g_object_set_qdata (G_OBJECT (display), quark_current_tooltip, NULL); } -- 2.30.2